package com.book.system.common;


import lombok.Data;

import java.io.Serializable;


@Data
public class R<T> implements Serializable {
    //状态码
    private Integer code;
    //提示信息
    private String msg;
    //数据
    private T data;

    /**
     * @param object
     * @return com.example.demo.common.R<T>
     * @create by:刘林晓 of obilivion
     * @description: 成功响应返回数据
     */
    public static <T> R<T> success(T object) {

        R<T> r = new R<T>();
        //将成功的数据存放在data中
        r.data = object;
        r.code = 1;
        return r;
    }


    /**
     * @param msg    提示信息
     * @param object 数据
     * @return com.example.keyboard.common.R<T>
     * @description: 成功响应返回的数据并且给出提示
     * @create by:刘林晓 of obilivion
     */
    public static <T> R<T> success(String msg, T object) {

        R<T> r = new R<T>();
        //将成功的数据存放在data中
        r.data = object;
        r.msg = msg;
        r.code = 1;
        return r;
    }

    /**
     * 失败返回的响应数据
     *
     * @param msg 提示信息
     * @return com.book.system.commom.R<T>
     * @author :刘林晓
     * @create time : 2024/4/27 19:56
     */
    public static <T> R<T> error(String msg) {
        R<T> r = new R<T>();
        //错误信息添加到信息中
        r.msg = msg;
        r.code = 0;
        return r;
    }

    /**
     * 失败返回的响应数据
     *
     * @param code 状态码
     * @param msg  提示信息
     * @return com.book.system.commom.R<T>
     * @author :刘林晓
     * @create time : 2024/4/27 19:56
     */
    public static <T> R<T> error(Integer code, String msg) {

        R<T> r = new R<T>();
        //错误信息添加到信息中
        r.msg = msg;
        r.code = code;
        return r;
    }
}